Because the worldwide web (“web”) provides an enormous distributed database of information interconnected by the Internet, many CD/DVD products, such as, for example, Encarta®, include hyperlinks that link to information on the web. A hyperlink is a URL, which is a formatted string that identifies a particular resource, such as a web page, on the web. The URLs in these products are typically hard-coded.
These URLs are used to provide links from an installation of the CD/DVD product on a client computer to appropriate Internet locations, which include the additional information. The client computer sends the URL to a network server specified by a portion of the URL, and a web site rendering engine on the network server responds by sending the requested resource (e.g., a web page) to the client computer.
Once the CD/DVD product containing the URLs is shipped to retail stores, and eventually to customers, the hard-coded URLs can never be changed. This presents a major problem because there are many situations when a URL may need to be changed. For example, a URL may need to be changed when the web resource has moved to a different location, when the web resource has changed its parameter requirements, at the end of a product's life cycle, at the end of a feature's life, to improve the user experience, and the like. The problem is compounded when a URL references a resource that is not under the control of the developer of the CD/DVD product. In such a case, the party who controls the resource can arbitrarily take steps that would render the URL invalid.
Because hard-coded URLs can not be changed, a client computer that attempts to access a resource through an invalid URL would detect an error. To prevent these errors from occurring, developers of a CD/DVD product would set each URL to identify a known resource on a known server that is controlled by the developer. When a request for a resource identified by a URL is received at the server, the server could redirect the client computer to retrieve the resource from another location or server. Such redirected URLs are referred to as “teleport” URLs. To correctly process both valid and invalid teleport URLs on the server, each teleport URL has a corresponding active server page (“asp”) file or server side executable or server side script extension. Each asp file or server side executable or server side script extension is basically a script that translates the input teleport URL to a corresponding destination URL. The web site rendering engine can then redirect the user to the resource addressed by the destination URL (i.e., the correct destination).
A major drawback with using a corresponding asp file or server side executable or server side script extension for each teleport URL is the difficulty in maintaining the potentially large number of asp or server side executable or server side script extension files. For example, when a teleport URL changes, the change needs to be applied to its related asp file or server side executable or server side script extension. Accordingly, changes related to a large number of teleport URLs need to be applied to all related asp files or server side executables or server side script extensions. Even if it is the same change, the change needs to be applied to all asp files or server side executables or server side script extensions because, presently, there is no way for a group of teleport URLs to be updated. Applying the changes to the asp files or server side executables or server side script extensions becomes more complicated when some processing logic needs to be shared across asp files or server side executables or server side script extensions on an ongoing basis. Thus, a change could involve hundreds of asp files or server side executables or server side script extensions, and this is a very inefficient method of handling changes to teleport URLs. Moreover, changes to asp files or server side executables or server side script extensions need to be made by programmers whose services may be in short supply and expensive.
Accordingly, a teleport URL handling architecture that efficiently and flexibly handles changes to teleport URLs will have significant utility.